//
//  NSFileManager+WLExtension.m
//  xiacai
//
//  Created by 王亮 on 2018/1/11.
//  Copyright © 2018年 TBS. All rights reserved.
//

#import "NSFileManager+WLExtension.h"

@implementation NSFileManager (WLExtension)

/**
 路径是否存在
 
 @param path 路径
 @return YES 存在  NO 不存在
 */
+ (BOOL)wl_isPathExist:(NSString *)path{
    return [[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:nil];
}


/**
 搜索指定文件夹内的所有文件路径
 
 @param path 指定文件夹
 @return 路径合集 按照顺序排序过的
 */
+ (NSArray<NSString *> *)wl_searchFiles:(NSString *)path{
    /** 创建文件管理 */
    NSFileManager *fileManger = [NSFileManager defaultManager];
    /** 扫描的路径读取 */
    NSMutableArray *allPathList = [NSMutableArray array];
    /** 是否为文件夹 */
    BOOL isDir = NO;
    /** 判断路径是否存在 */
    BOOL isExist = [fileManger fileExistsAtPath:path isDirectory:&isDir];
    if (isExist) {
        if (isDir) {//文件夹
            /** 获取文件夹内的所有文件名 */
            NSArray * charArray = [fileManger contentsOfDirectoryAtPath:path error:nil];
            /** 按照文件名排序 */
            NSStringCompareOptions comparisonOptions = NSCaseInsensitiveSearch|NSNumericSearch|
            NSWidthInsensitiveSearch|NSForcedOrderingSearch;
            NSComparator sort = ^(NSString *obj1,NSString *obj2){
                NSRange range = NSMakeRange(0,obj1.length);
                return [obj1 compare:obj2 options:comparisonOptions range:range];
            };
            NSArray *resultArray2 = [charArray sortedArrayUsingComparator:sort];
            /** 将路径循环拼接 添加数组 */
            for (NSString * str in resultArray2) {
                [allPathList addObject:[NSString stringWithFormat:@"%@/%@",path,str]];
            }
            return allPathList;
        }
        return nil;
    }
    NSLog(@"你打印的是目录或者不存在");
    return nil;
}
/**
 获取路径集合图片
 
 @param pathList 路径集合
 @return 图片集合
 */
+(NSArray<UIImage *> *)wl_getCachePathList:(NSArray<NSString *> *)pathList{
    NSArray<NSString *> *list = pathList;
    NSMutableArray<UIImage *> *image_list = [NSMutableArray array];
    for (NSString *img_path in list) {
        UIImage *image = [UIImage imageWithContentsOfFile:img_path];
        if (image) {
            [image_list addObject:image];
        }
//        NSData *imageData = [NSData dataWithContentsOfFile:img_path];
//        if (imageData) {
//            UIImage *image = [UIImage imageWithData:imageData];
//            if (image) {
//                [image_list addObject:image];
//            }
//        }
    }
    return image_list;
}
@end
